/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package presentacion.comun;

import hibernate.objeto.NoFarmacologico;
import java.util.Vector;
import javax.swing.JDialog;
import javax.swing.JTable;
import javax.swing.JTextField;
import logica.EvolucionLogica;
import logica.NoFarmacologicoLogica;
import presentacion.CapaPresentacion;
import presentacion.GestionPacientePresentacion;
import presentacion.tratamiento_medicamentoso.HistorialTratamientoMedicamentosoPresentacion;
import presentacion.tratamiento_medicamentoso.DatosNoFarmacologico;
import presentacion.utilidad.MensajePresentacion;
import presentacion.utilidad.tabla.MiModeloTabla;

/**
 *
 * @author Rafael
 */
public class ComunNoFarmacologicoPresentacion {

    private JDialog owner;

    private NoFarmacologico noFarmacologico;

    private JTable tablaNoFarmacologico;

    private JTextField filtrarNoFarmacologico;

    private Vector<NoFarmacologico> vectorNoFarmacologico;

    //Constructor para la funcionalidad NoFarmacologico
    public ComunNoFarmacologicoPresentacion(JDialog owner, 
            NoFarmacologico noFarmacologico, JTable tablaNoFarmacologico, 
            JTextField filtrarNoFarmacologico, 
            Vector<NoFarmacologico> vectorNoFarmacologico) {
        this.owner = owner;
        this.noFarmacologico = noFarmacologico;
        this.tablaNoFarmacologico = tablaNoFarmacologico;
        this.filtrarNoFarmacologico = filtrarNoFarmacologico;
        this.vectorNoFarmacologico = vectorNoFarmacologico;
    }

    /**
     * Abre las propiedades del objeto NoFarmacologico seleccionado.
     *
     */
    public void verDetalleNoFarmacologico() {
        if (noFarmacologico != null) {
            JDialog jDialog = new JDialog(owner, "Propiedades", true);
            DatosNoFarmacologico panel = new DatosNoFarmacologico(
                    owner, noFarmacologico, tablaNoFarmacologico,
                    filtrarNoFarmacologico, vectorNoFarmacologico);

            int width = 331;
            int height = (int) panel.getPreferredSize().getHeight() + 30;

            jDialog.setSize(width, height);
            jDialog.add(panel);
            jDialog.setResizable(false);
            jDialog.setLocationRelativeTo(null);
            jDialog.setVisible(true);
        }
    }

    /**
     * Finaliza el tratamiento del no farmacologico.
     *
     */
    public void finalizarNoFarmacologico() {
        /* Finaliza cuando es usuario autorizado, es paciente no fallecido,
           evolucion activa y no farmaco activo */
        if (CapaPresentacion.modoCarga || CapaPresentacion.modoModificacion) {
            if (EvolucionLogica.esEvolucionActiva(
                    noFarmacologico.getTratamientoMedicamentoso().getEvolucion())) {
                if (noFarmacologico.getEstadoNoFarmacologico().equalsIgnoreCase("Activo")) {
                    //Finaliza el no farmacologico
                    NoFarmacologicoLogica.finalizarNoFarmacologico(noFarmacologico);

                    //Tabla tratamiento
                    MiModeloTabla.cargarTablaNoFarmacologico(
                            vectorNoFarmacologico, tablaNoFarmacologico);

                    MiModeloTabla.seleccionarFilaDeTabla(String.valueOf(
                            noFarmacologico.getIdNoFarmacologico()),
                            tablaNoFarmacologico, null);

                    if (owner instanceof
                            HistorialTratamientoMedicamentosoPresentacion) {
                        HistorialTratamientoMedicamentosoPresentacion.
                                personalizarTabla();
                    }
                }  else {
                    MensajePresentacion.informarEntidadNoActiva(noFarmacologico);
                }
            } else {
                MensajePresentacion.informarEntidadNoActiva(
                        noFarmacologico.getTratamientoMedicamentoso().getEvolucion());
            }
        } else {
            //Si no tiene acceso
            MensajePresentacion.informarUsuarioRestringido();
        }
    }

}
